package com.zdhr.igms.report.dao;

import com.zdhr.igms.demain.*;

import java.util.List;

/**
 * @ProjectName: igms
 * @Package: com.zdhr.igms.report.dao
 * @ClassName: ReportDao
 * @Author: luolin
 * @Description: 报表Dao接口
 * @Date: 2019-10-11 15:49
 * @Version: 1.0
 */
public interface ReportDao {
    /**
     * 新增报表信息
     * @param reportInfo
     * @return
     */
    int insertReportInfo(ReportInfo reportInfo) throws Exception;

    /**
     * 新增报表数据
     * @param reportData
     * @return
     */
    int insertReportData(ReportData reportData) throws Exception;

    /**
     * 新增报表结果数据
     * @param reportStatistics
     * @return
     */
    int insertReportStatistics(ReportStatistics reportStatistics) throws Exception;
    /**
     * 新增报表线性数据
     * @param reportLineData
     * @return
     */
    int insertReportLineData(ReportLineData reportLineData) throws Exception;
    /**
     * 写入实时数据
     * @param realTimeData
     * @return
     */
    int insertRealTimeData(RealTimeData realTimeData) throws Exception;
    /**
     * 条件查询报表信息
     * @param reportInfo
     * @return
     */
    ReportInfo reportInfoByInfo(ReportInfo reportInfo);

    /**
     * 通过id查询报表数据
     * @param reportData
     * @return
     */
    List<ReportData> reportDataById(ReportData reportData);

    /**
     * 通过id查询报表结果
     * @param reportStatistics
     * @return
     */
    ReportStatistics reportStatisticsById(ReportStatistics reportStatistics);

    /**
     * 通过id查询报表线性数据
     * @param reportLineData
     * @return
     */
    List<ReportLineData> reportLineDataById(ReportLineData reportLineData);
    /**
     * 快速查询实时数据
     * @return
     */
    RealTimeData queryRealTimeDataById(String id);
    /**
     * 查询实时数据
     * @param realTimeData
     * @return
     */
    List<RealTimeData> queryRealTimeDataByObject(RealTimeData realTimeData);
    /**
     * 查询实时数据
     * @param realTimeData
     * @return
     */
    List<RealTimeData> queryRealTimeDataByObjectPage(PageBean page,RealTimeData realTimeData);
    /**
     * 查询实时数据总条数
     * @param realTimeData
     * @return
     */
    int queryRealTimeDataByObjectReturnCount(RealTimeData realTimeData);
}
